package com.yitiao.jvm;

import org.apache.lucene.util.RamUsageEstimator;

import java.util.HashMap;

/**
 * 如何计算一个对象的大小：对象头 + 实例数据 + 对齐填充
 * 对象头中的锁标志位 {@link com.yitiao.multithread.MarkWordDemo}
 */
public class ObjectSize {
    public static void main(String[] args) {
        Integer integer = new Integer("123"); // int value  16
        Object object = new Object();   // int hashcode  16
        HashMap<String,String> map = new HashMap<>();   //  48

        // 导入 lucene.core 依赖
        System.out.println(RamUsageEstimator.shallowSizeOf(map));
    }
}
